perm filename REVDIS.PRF[F78,JMC] blob
sn#388452 filedate 1978-10-16 generic text, type T, neo UTF8
*****LABEL I_RID;
*****∧I LISTINDUCTION1;
1 ((qNIL*qNIL)=qNIL∧∀uu.((cdr uu*qNIL)=cdr uu⊃(uu*qNIL)=uu))⊃∀u.(u*qNIL)=u
*****LABEL NIL_RID;
*****EVAL qNIL*qNIL BY { APPEND_DEF};
2 (qNIL*qNIL)=qNIL
*****LABEL H_RID;
*****ASSUME (cdr uu*qNIL)=cdr uu;
3 (cdr uu*qNIL)=cdr uu (3)
*****REWRITE uu*qNIL BY LOGICTREE∪SEXPSS∪{ APPEND_DEF,H_RID};
4 (uu*qNIL)=uu (3)
*****⊃I H_RID⊃↑;
5 (cdr uu*qNIL)=cdr uu⊃(uu*qNIL)=uu
*****∀I ↑ uu;
6 ∀uu.((cdr uu*qNIL)=cdr uu⊃(uu*qNIL)=uu)
*****TAUT ∀u.(u*qNIL)=u I_RID:NIL_RID,6;
7 ∀u.(u*qNIL)=u
*****LABEL I_ASS;
*****∧I LISTINDUCTION1;
8 (∀v w.(qNIL*(v*w))=((qNIL*v)*w)∧∀uu.(∀v w.(cdr uu*(v*w))=((cdr uu*v)*w)⊃∀v w.(uu*(v*w))=((uu*v)*w)))⊃∀u v w.(u%
*(v*w))=((u*v)*w)
*****LABEL NIL_ASS;
*****EVAL ∀v w.(qNIL*(v*w))=((qNIL*v)*w) BY { APPEND_DEF};
9 ∀v w.(qNIL*(v*w))=((qNIL*v)*w)
*****LABEL H_ASS;
*****ASSUME ∀v w.(cdr uu*(v*w))=((cdr uu*v)*w);
10 ∀v w.(cdr uu*(v*w))=((cdr uu*v)*w) (10)
*****REWRITE ∀v w.(uu*(v*w))=((uu*v)*w) BY LOGICTREE∪SEXPSS∪{ APPEND_DEF,H_ASS};
11 ∀v w.(uu*(v*w))=((uu*v)*w) (10)
*****⊃I H_ASS⊃↑;
12 ∀v w.(cdr uu*(v*w))=((cdr uu*v)*w)⊃∀v w.(uu*(v*w))=((uu*v)*w)
*****∀I ↑ uu;
13 ∀uu.(∀v w.(cdr uu*(v*w))=((cdr uu*v)*w)⊃∀v w.(uu*(v*w))=((uu*v)*w))
*****TAUT ∀u v w.(u*(v*w))=((u*v)*w) I_ASS:NIL_ASS,13;
14 ∀u v w.(u*(v*w))=((u*v)*w)
*****LABEL I_DIS;
*****∧I LISTINDUCTION1;
15 (∀v w.rev1(qNIL*v,w)=rev1(v,rev1(qNIL,w))∧∀uu.(∀v w.rev1(cdr uu*v,w)=rev1(v,rev1(cdr uu,w))⊃∀v w.rev1(uu*v,w)%
=rev1(v,rev1(uu,w))))⊃∀u v w.rev1(u*v,w)=rev1(v,rev1(u,w))
*****LABEL NIL_DIS;
*****EVAL ∀v w.rev1(qNIL*v,w)=rev1(v,rev1(qNIL,w)) BY { APPEND_DEF,REV1_DEF};
16 ∀v w.rev1(qNIL*v,w)=rev1(v,rev1(qNIL,w))
*****LABEL H_DIS;
*****ASSUME ∀v w.rev1(cdr uu*v,w)=rev1(v,rev1(cdr uu,w));
17 ∀v w.rev1(cdr uu*v,w)=rev1(v,rev1(cdr uu,w)) (17)
*****∀E APPEND_DEF uu,v;
18 (uu*v)=IF NULL uu THEN v ELSE cons(car uu,cdr uu*v)
*****REWRITE ∀v w.rev1(uu*v,w)=rev1(v,rev1(uu,w)) BY LOGICTREE∪SEXPSS∪{ REV1_DEF,H_DIS:18};
19 ∀v w.rev1(uu*v,w)=rev1(v,rev1(uu,w)) (17)
*****⊃I H_DIS⊃↑;
20 ∀v w.rev1(cdr uu*v,w)=rev1(v,rev1(cdr uu,w))⊃∀v w.rev1(uu*v,w)=rev1(v,rev1(uu,w))
*****∀I ↑ uu;
21 ∀uu.(∀v w.rev1(cdr uu*v,w)=rev1(v,rev1(cdr uu,w))⊃∀v w.rev1(uu*v,w)=rev1(v,rev1(uu,w)))
*****TAUT ∀u v w.rev1(u*v,w)=rev1(v,rev1(u,w)) I_DIS:NIL_DIS,21;
22 ∀u v w.rev1(u*v,w)=rev1(v,rev1(u,w))